export const base64AddWaterMaker = (base64Img, wmConfig) => {
  if (wmConfig.textArray.length === 0) {
    console.error('****没有水印内容*****')
    return base64Img
  }

  return new Promise((resolve, reject) => {
    const canvas = document.createElement('canvas')
    const ctx = canvas.getContext('2d')
    const img = new Image()
    let resultBase64 = null

    img.onload = function () {
      canvas.width = img.width
      canvas.height = img.height

      //canvas绘制图片，0 0  为左上角坐标原点
      ctx.drawImage(img, 0, 0)
      //写入水印
      drawWaterMark(ctx, img.width, img.height, wmConfig)
      resultBase64 = canvas.toDataURL('image/png')

      if (!resultBase64) {
        reject()
      } else {
        resolve(resultBase64)
      }
    }
    img.src = base64Img
  })
}

//画布添加水印
const drawWaterMark = (ctx, imgWidth, imgHeight, wmConfig) => {
  let fontSize
  //   if (imgWidth >= 3456) {
  //     fontSize = 50
  //   } else if (imgWidth >= 2700) {
  //     fontSize = 32
  //   } else if (imgWidth >= 2000) {
  //     fontSize = 32
  //   } else if (imgWidth >= 1436) {
  //     fontSize = 32
  //   } else if (imgWidth >= 800) {
  //     fontSize = 32
  //   } else if (imgWidth >= 500) {
  //     fontSize = 32
  //   } else {
  //     fontSize = 32
  //   }
  fontSize = imgWidth / 25
  console.log(imgWidth, imgHeight, fontSize)
  ctx.font = `${fontSize}px ${wmConfig.font}`
  ctx.lineWidth = 1
  ctx.fillStyle = 'rgba(255,0,0,1)'
  ctx.textAlign = 'left'
  ctx.textBaseline = 'middle'

  // 确保水印文本不超过两行
  if (wmConfig.textArray.length > 2) {
    wmConfig.textArray = wmConfig.textArray.slice(0, 2)
  }

  // 文字坐标设置在左下角
  let x = 20 // 水平偏移
  let y = imgHeight - 100 // 竖直偏移减去将开始的高度，调整这个值来调整垂直位置

  wmConfig.textArray.forEach((el, index) => {
    ctx.fillText(el, x, y - index * fontSize)
  })
  //   //文字坐标

  //   const maxPx = Math.max(imgWidth, imgHeight)

  //   const stepPx = Math.floor(maxPx / wmConfig.density)

  //   let arrayX = [0] //初始水印位置 canvas坐标 0 0 点
  //   while (arrayX[arrayX.length - 1] < maxPx / 2) {
  //     arrayX.push(arrayX[arrayX.length - 1] + stepPx)
  //   }
  //   arrayX.push(
  //     ...arrayX.slice(1, arrayX.length).map((el) => {
  //       return -el
  //     })
  //   )

  //   console.log(arrayX)

  //   for (let i = 0; i < arrayX.length; i++) {
  //     for (let j = 0; j < arrayX.length; j++) {
  //       ctx.save()
  //       ctx.translate(imgWidth / 2, imgHeight / 2) ///画布旋转原点 移到 图片中心
  //       ctx.rotate(-Math.PI / 5)
  //       if (wmConfig.textArray.length > 3) {
  //         wmConfig.textArray = wmConfig.textArray.slice(0, 3)
  //       }
  //       wmConfig.textArray.forEach((el, index) => {
  //         let offsetY = fontSize * index + 2
  //         ctx.fillText(el, arrayX[i], arrayX[j] + offsetY)
  //       })
  //       ctx.restore()
  //     }
  //   }
}
